
from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 主动技能(主动技能):
    不加成冰枪技能倍率 = 1


class 技能0(主动技能):
    名称 = "冰魄剑"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [30, 280]
    无色消耗 = 0
    data0 = [0, 1007, 1106, 1211, 1317, 1421, 1517, 1623, 1725, 1834, 1937, 2041, 2141, 2242, 2354, 2453, 2559, 2666, 2775, 2876, 2976, 3083, 3181, 3291, 3394, 3497, 3596, 3702, 3807, 3913, 4015, 4116, 4217, 4324, 4430,
             4532, 4633, 4739, 4844, 4947, 5050, 5149, 5257, 5364, 5464, 5574, 5673, 5781, 5884, 5989, 6091, 6193, 6299, 6401, 6506, 6608, 6710, 6816, 6919, 7027, 7127, 7233, 7334, 7440, 7543, 7649, 7748, 7855, 7955, 8060, 8167]
    hit0 = 2
    data1 = [0, 1204, 1327, 1453, 1572, 1698, 1824, 1949, 2074, 2202, 2327, 2451, 2572, 2696, 2823, 2946, 3073, 3201, 3323, 3450, 3568, 3693, 3820, 3945, 4072, 4198, 4321, 4447, 4566, 4694, 4819, 4939, 5068, 5186, 5312,
             5438, 5560, 5689, 5808, 5932, 6061, 6180, 6309, 6428, 6553, 6688, 6816, 6936, 7061, 7185, 7307, 7431, 7557, 7681, 7810, 7928, 8053, 8182, 8303, 8430, 8553, 8682, 8801, 8925, 9054, 9175, 9302, 9427, 9553, 9673, 9797]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7

    def 技能形态改变(self):
        self.hit1 = 0


class 技能1(被动技能):
    名称 = '冰武精通'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.10 + 0.01 * self.等级, 5)


class 技能2(主动技能):
    名称 = "寒冰连枪"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 3
    MP = [20, 210]
    无色消耗 = 0
    data0 = [0, 580, 639, 699, 757, 817, 875, 934, 992, 1051, 1113, 1171, 1230, 1288, 1347, 1406, 1466, 1524, 1583, 1641, 1701, 1760, 1818, 1878, 1936, 1997, 2055, 2114, 2172, 2231, 2290, 2350, 2409, 2467, 2526, 2584,
             2645, 2703, 2762, 2820, 2879, 2940, 2999, 3058, 3116, 3175, 3234, 3293, 3351, 3411, 3470, 3529, 3588, 3646, 3705, 3763, 3825, 3884, 3942, 4000, 4059, 4120, 4178, 4237, 4295, 4354, 4412, 4472, 4530, 4590, 4648]
    hit0 = 5
    TP成长 = 0.1
    TP上限 = 7


class 技能3(主动技能):
    名称 = "冰魄旋枪"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [35, 350]
    无色消耗 = 0
    data0 = [0, 378, 415, 454, 494, 531, 570, 608, 647, 684, 723, 760, 800, 839, 877, 915, 955, 993, 1030, 1068, 1109, 1145, 1184, 1224, 1261, 1299, 1338, 1376, 1415, 1454, 1490, 1529, 1568, 1608, 1645, 1683, 1723,
             1761, 1799, 1836, 1875, 1914, 1952, 1990, 2030, 2068, 2105, 2144, 2184, 2220, 2259, 2299, 2336, 2374, 2414, 2453, 2490, 2529, 2568, 2604, 2643, 2683, 2720, 2758, 2798, 2836, 2874, 2912, 2951, 2990, 3027]
    hit0 = 16
    TP成长 = 0.1
    TP上限 = 7


class 技能4(主动技能):
    名称 = '冰霜之径'
    所在等级 = 25
    等级上限 = 20
    基础等级 = 10
    是否有伤害 = 0
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.07 + 0.01 * self.等级, 5)


class 技能5(被动技能):
    名称 = '冰之领悟'
    所在等级 = 25
    等级上限 = 20
    基础等级 = 10
    关联技能 = ['所有']

    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        elif self.等级 <= 10:
            return (1.02 + self.等级 * 0.01)
        else:
            return (1.12 + (self.等级 - 10) * 0.02)


class 技能6(主动技能):
    名称 = "冰魄之弓"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [60, 546]
    无色消耗 = 0
    data0 = [0, 2050, 2260, 2467, 2677, 2884, 3094, 3301, 3509, 3717, 3926, 4134, 4341, 4549, 4758, 4965, 5174, 5382, 5591, 5798, 6007, 6216, 6424, 6632, 6840, 7050, 7255, 7464, 7673, 7880, 8089, 8297, 8505, 8714, 8921, 9131, 9338, 9546,
             9755, 9963, 10170, 10379, 10587, 10794, 11004, 11211, 11421, 11628, 11837, 12045, 12253, 12461, 12670, 12875, 13085, 13293, 13501, 13710, 13918, 14127, 14335, 14544, 14751, 14960, 15168, 15376, 15583, 15793, 15999, 16208, 16416]
    hit0 = 3
    data1 = [0, 3108, 3424, 3739, 4054, 4370, 4686, 5000, 5316, 5631, 5947, 6262, 6578, 6894, 7208, 7523, 7839, 8155, 8470, 8785, 9102, 9417, 9732, 10046, 10362, 10678, 10995, 11308, 11625, 11939, 12256, 12570, 12886, 13201, 13518, 13832, 14149,
             14462, 14779, 15093, 15410, 15724, 16041, 16355, 16671, 16986, 17302, 17616, 17933, 18248, 18565, 18878, 19194, 19509, 19825, 20139, 20456, 20771, 21088, 21400, 21717, 22032, 22348, 22663, 22980, 23295, 23610, 23924, 24240, 24556, 24870]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能7(主动技能):
    名称 = "破冰飞刃"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [60, 546]
    无色消耗 = 0
    data0 = [0, 377, 416, 453, 492, 532, 568, 607, 644, 683, 722, 758, 797, 837, 875, 913, 952, 990, 1027, 1065, 1105, 1143, 1181, 1220, 1258, 1295, 1334, 1372, 1411, 1450, 1487, 1526, 1565, 1601, 1640, 1680, 1717,
             1756, 1795, 1831, 1870, 1908, 1946, 1986, 2024, 2062, 2101, 2138, 2176, 2215, 2253, 2293, 2330, 2369, 2407, 2444, 2483, 2522, 2559, 2599, 2638, 2674, 2713, 2750, 2789, 2828, 2867, 2905, 2943, 2981, 3019]
    hit0 = 24
    TP成长 = 0.1
    TP上限 = 7


class 技能8(被动技能):
    名称 = '水晶剑'
    所在等级 = 30
    等级上限 = 11
    基础等级 = 1
    关联技能 = ['冰魄剑']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return (2.00 + (self.等级-1) * 0.02)


class 技能9(主动技能):
    名称 = "旋冰穿刺"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [180, 1512]
    无色消耗 = 0
    data0 = [0, 13389, 14748, 16104, 17463, 18821, 20181, 21538, 22897, 24254, 25613, 26971, 28331, 29689, 31047, 32406, 33765, 35122, 36480, 37838, 39198, 40556, 41914, 43273, 44631, 45991, 47347, 48706, 50064, 51425, 52782, 54141, 55498, 56858, 58215, 59574,
             60932, 62290, 63649, 65008, 66364, 67723, 69081, 70441, 71798, 73156, 74514, 75876, 77232, 78591, 79949, 81308, 82666, 84025, 85382, 86740, 88098, 89458, 90816, 92174, 93531, 94890, 96249, 97607, 98967, 100325, 101685, 103042, 104401, 105758, 107117]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5


class 技能10(主动技能):
    名称 = "冰魄锤击"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 18
    MP = [185, 1526]
    无色消耗 = 1
    data0 = [0, 14910, 16424, 17936, 19447, 20961, 22474, 23988, 25500, 27013, 28526, 30038, 31551, 33064, 34575, 36088, 37601, 39114, 40626, 42139, 43654, 45166, 46679, 48192, 49704, 51217, 52729, 54242, 55754, 57267, 58780, 60292, 61805, 63320, 64830, 66344,
             67858, 69371, 70882, 72395, 73908, 75420, 76933, 78446, 79959, 81471, 82985, 84498, 86009, 87522, 89035, 90547, 92060, 93573, 95087, 96598, 98112, 99625, 101135, 102649, 104164, 105675, 107188, 108701, 110214, 111726, 113239, 114752, 116264, 117777, 119289]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.36


class 技能11(主动技能):
    名称 = "极冰绽放"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [160, 1344]
    无色消耗 = 1
    data0 = [0, 1166, 1282, 1402, 1520, 1639, 1757, 1875, 1993, 2111, 2230, 2349, 2466, 2585, 2702, 2822, 2940, 3057, 3177, 3295, 3412, 3531, 3649, 3768, 3886, 4006, 4123, 4240, 4359, 4477, 4596, 4715, 4832, 4949, 5069,
             5187, 5306, 5425, 5543, 5660, 5778, 5898, 6015, 6133, 6253, 6370, 6489, 6606, 6725, 6844, 6962, 7080, 7198, 7316, 7435, 7553, 7673, 7789, 7907, 8026, 8145, 8264, 8382, 8498, 8618, 8736, 8854, 8974, 9091, 9209, 9327]
    hit0 = 4
    data1 = [0, 5152, 5674, 6196, 6720, 7243, 7764, 8288, 8811, 9333, 9855, 10379, 10901, 11424, 11947, 12469, 12992, 13516, 14037, 14559, 15083, 15606, 16127, 16651, 17173, 17696, 18219, 18741, 19265, 19788, 20309, 20833, 21356, 21878, 22400, 22924,
             23446, 23969, 24491, 25014, 25537, 26058, 26582, 27105, 27627, 28150, 28673, 29195, 29717, 30242, 30763, 31285, 31810, 32332, 32853, 33377, 33900, 34423, 34945, 35468, 35991, 36514, 37035, 37559, 38082, 38604, 39127, 39650, 40172, 40695, 41217]
    hit1 = 1
    data2 = [0, 2575, 2837, 3099, 3359, 3620, 3883, 4143, 4405, 4667, 4927, 5188, 5450, 5711, 5974, 6235, 6495, 6757, 7018, 7278, 7542, 7803, 8064, 8325, 8585, 8847, 9110, 9372, 9632, 9893, 10154, 10416, 10677, 10939, 11200, 11462, 11722,
             11984, 12246, 12506, 12767, 13030, 13290, 13553, 13814, 14074, 14336, 14597, 14858, 15121, 15382, 15642, 15904, 16164, 16425, 16689, 16950, 17211, 17472, 17732, 17995, 18257, 18518, 18779, 19040, 19301, 19563, 19825, 20086, 20347, 20609]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.CDR *= 0.90

    def 等效百分比(self, **argv):
        char = argv.get('char', {})
        冰舞 = char.get_skill_by_name("冰舞乱击")
        if 冰舞.等级 > 0:
            self.power0 = 1.95
            self.power1 = 2.35
            self.power2 = 0
            self.hit0 = 4
            self.hit1 = 1
            self.hit2 = 0
        else:
            self.power0 = self.power1 = self.power2 = 1
            self.hit0 = 5
            self.hit1 = 1
            self.hit2 = 1
        if "极冰绽放" in char.护石栏:
            self.power0 *= 1.11
            self.power1 *= 1.11 + 0.27
            self.power2 *= 1.11 + 0.35
        return super().等效百分比(**argv)


class 技能12(主动技能):
    名称 = "冰雪风暴"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 40
    MP = [350, 3080]
    无色消耗 = 2
    data0 = [0, 1515, 1668, 1821, 1977, 2129, 2283, 2437, 2589, 2745, 2898, 3052, 3206, 3358, 3513, 3667, 3821, 3973, 4128, 4282, 4435, 4589, 4743, 4896, 5051, 5203, 5356, 5512, 5665, 5818, 5972, 6126, 6280, 6434, 6587, 6740,
             6895, 7048, 7201, 7356, 7510, 7664, 7817, 7970, 8126, 8279, 8431, 8586, 8739, 8893, 9047, 9200, 9354, 9509, 9661, 9815, 9969, 10123, 10276, 10430, 10584, 10737, 10892, 11045, 11198, 11353, 11505, 11659, 11814, 11967, 12122]
    hit0 = 14
    data1 = [0, 14791, 16293, 17793, 19293, 20795, 22296, 23797, 25297, 26797, 28298, 29800, 31301, 32801, 34301, 35804, 37303, 38804, 40304, 41804, 43306, 44807, 46308, 47808, 49309, 50810, 52310, 53812, 55312, 56812, 58313, 59813, 61313, 62816, 64316, 65817,
             67317, 68817, 70320, 71820, 73321, 74821, 76321, 77823, 79323, 80824, 82324, 83825, 85326, 86827, 88328, 89829, 91329, 92830, 94330, 95832, 97332, 98832, 100333, 101833, 103336, 104836, 106336, 107837, 109337, 110840, 112340, 113840, 115341, 116842, 118341]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 16
        self.power1 = 1.34


class 技能13(被动技能):
    名称 = '冰封奥义'
    所在等级 = 48

    等级上限 = 50
    等级精通 = 40
    学习间隔 = 3

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.105 + 0.015 * self.等级, 5)


class 技能14(主动技能):
    名称 = "千旋冰轮破"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [1200, 10080]
    无色消耗 = 5
    data0 = [0, 1518, 1872, 2223, 2576, 2929, 3280, 3633, 3985, 4339, 4691, 5042, 5394, 5746, 6100, 6452, 6804, 7157, 7508, 7860, 8215, 8567, 8919, 9271, 9622, 9975, 10330,
             10680, 11033, 11385, 11736, 12089, 12443, 12795, 13148, 13498, 13851, 14206, 14557, 14909, 15261, 15613, 15966, 16317, 16671, 17024, 17375, 17727, 18079, 18432, 18786]
    hit0 = 42
    data1 = [0, 1290, 1590, 1889, 2191, 2492, 2791, 3091, 3389, 3689, 3988, 4290, 4589, 4889, 5187, 5487, 5786, 6087, 6386, 6686, 6985, 7284, 7584, 7885, 8184, 8484, 8783,
             9084, 9383, 9682, 9984, 10283, 10583, 10882, 11182, 11481, 11781, 12080, 12380, 12680, 12980, 13279, 13580, 13878, 14178, 14477, 14777, 15076, 15376, 15678, 15977]
    hit1 = 24
    data2 = [0, 4525, 5578, 6627, 7676, 8726, 9776, 10826, 11874, 12925, 13974, 15026, 16075, 17124, 18175, 19224, 20274, 21323, 22374, 23425, 24474, 25525, 26574, 27624, 28672, 29723,
             30772, 31824, 32872, 33924, 34973, 36021, 37072, 38120, 39172, 40220, 41272, 42323, 43372, 44421, 45470, 46520, 47570, 48620, 49670, 50721, 51770, 52819, 53870, 54918, 55970]
    hit2 = 1


class 技能15(主动技能):
    名称 = "冰凌破"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [400, 1120]
    无色消耗 = 1
    data0 = [0, 1124, 1238, 1353, 1465, 1581, 1694, 1809, 1923, 2038, 2151, 2264, 2380, 2492, 2608, 2722, 2836, 2950, 3064, 3179, 3291, 3406, 3521, 3634, 3749,
             3863, 3976, 4091, 4205, 4321, 4433, 4547, 4662, 4775, 4890, 5004, 5117, 5232, 5347, 5460, 5574, 5689, 5803, 5916, 6031, 6146, 6259, 6374, 6487, 6601, 6715]
    hit0 = 25
    data1 = [0, 5355, 5898, 6444, 6986, 7529, 8073, 8617, 9159, 9702, 10246, 10789, 11332, 11876, 12419, 12962, 13507, 14050, 14592, 15137, 15680, 16223, 16765, 17310, 17853, 18397,
             18940, 19484, 20027, 20570, 21114, 21657, 22201, 22743, 23287, 23831, 24373, 24916, 25462, 26005, 26547, 27092, 27635, 28178, 28720, 29265, 29808, 30350, 30894, 31438, 31981]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.31


class 技能16(主动技能):
    名称 = "千里冰封"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [900, 1820]
    无色消耗 = 2
    data0 = [0, 16317, 17973, 19629, 21284, 22940, 24596, 26251, 27906, 29562, 31219, 32873, 34529, 36184, 37839, 39494, 41150, 42804, 44461, 46118, 47773, 49428, 51083, 52739, 54393,
             56050, 57706, 59360, 61016, 62671, 64327, 65982, 67639, 69295, 70949, 72605, 74260, 75917, 77571, 79227, 80883, 82537, 84193, 85848, 87503, 89159, 90816, 92472, 94126, 95782, 97437]
    hit0 = 3
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 1
        self.power0 = 3.8


class 技能17(被动技能):
    名称 = '冰之技艺'
    所在等级 = 75

    等级上限 = 50
    等级精通 = 40
    学习间隔 = 3

    关联技能 = ['所有']
    冰枪关联技能 = ['冰魄剑', '寒冰连枪', '冰魄旋枪', '旋冰穿刺', '冰魄锤击', '极冰绽放', '碎冰破', '极冰猎魔斩']
    额外冰枪攻击力 = 0
    额外冰枪倍率 = 1

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.16 + 0.02 * self.等级, 5)

    def 冰枪加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 1.10


# 按技能data无法与游戏中伤害对应，因此从一级起验证，结果按核对伤害手动增加29百分比
class 技能18(主动技能):
    名称 = "碎冰破"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [580, 4500]
    无色消耗 = 3
    data0 = [0, 59436, 65468, 71496, 77526, 83557, 89585, 95617, 101646, 107676, 113706, 119737, 125766, 131795, 137826, 143854, 149885, 155916, 161945, 167975, 174006, 180034, 186065, 192095, 198124, 204155,
             210184, 216212, 222244, 228275, 234303, 240333, 246365, 252393, 258424, 264453, 270482, 276514, 282543, 288573, 294602, 300634, 306662, 312693, 318723, 324751, 330782, 336812, 342842, 348872, 354902]
    hit0 = 1
    data1 = [0, 21640, 23835, 26031, 28226, 30423, 32618, 34814, 37008, 39203, 41399, 43596, 45791, 47986, 50182, 52377, 54570, 56769, 58965, 61158, 63353, 65549, 67744, 69941, 72136, 74332,
             76527, 78722, 80917, 83114, 85309, 87505, 89700, 91896, 94092, 96288, 98482, 100676, 102872, 105067, 107264, 109459, 111655, 113850, 116046, 118241, 120438, 122633, 124829, 127023, 129218]
    hit1 = 1

    # # 按技能data无法与游戏中伤害对应，因此从一级起验证，结果按核对伤害手动增加29百分比
    # 倍率 = 1.29

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 *= 1.46


class 技能19(主动技能):
    名称 = "极冰领域"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [800, 6000]
    无色消耗 = 5
    data0 = [0, 67159, 73970, 80783, 87597, 94409, 101222, 108036, 114848, 121661, 128476, 135290, 142101, 148915, 155729, 162540, 169355, 176168, 182979, 189795, 196608, 203421, 210233, 217047, 223860, 230672,
             237486, 244299, 251112, 257926, 264739, 271552, 278365, 285178, 291991, 298804, 305617, 312432, 319245, 326058, 332871, 339683, 346497, 353310, 360121, 366936, 373750, 380563, 387376, 394188, 401001]
    hit0 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.32
        self.CDR *= 0.9


class 技能20(主动技能):
    名称 = "永罪冰狱"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2500, 5000]
    无色消耗 = 10
    data0 = [0, 69138, 85170, 101203, 117234, 133266, 149301, 165333, 181364, 197396, 213427, 229460, 245492, 261523, 277558, 293590, 309622, 325653, 341685, 357717, 373749, 389781, 405816, 421847, 437879,
             453911, 469943, 485975, 502006, 518038, 534073, 550105, 566136, 582168, 598201, 614232, 630264, 646298, 662330, 678362, 694394, 710425, 726458, 742490, 758522, 774555, 790588, 806619, 822651, 838683, 854715]
    hit0 = 1
    data1 = [0, 46104, 56795, 67486, 78175, 88867, 99557, 110249, 120940, 131631, 142321, 153012, 163704, 174395, 185085, 195775, 206466, 217158, 227849, 238539, 249230, 259922, 270612, 281303, 291993, 302684,
             313376, 324067, 334756, 345448, 356138, 366830, 377520, 388210, 398902, 409593, 420285, 430975, 441665, 452356, 463048, 473738, 484429, 495120, 505811, 516503, 527193, 537885, 548574, 559264, 569956]
    hit1 = 0
    data2 = [0, 30718, 37841, 44964, 52088, 59211, 66334, 73457, 80581, 87703, 94826, 101949, 109073, 116195, 123319, 130441, 137564, 144687, 151811, 158934, 166056, 173179, 180304, 187427, 194550, 201673,
             208796, 215919, 223042, 230165, 237290, 244413, 251535, 258658, 265781, 272905, 280028, 287151, 294273, 301398, 308521, 315644, 322767, 329891, 337013, 344135, 351258, 358381, 365506, 372628, 379751]
    hit2 = 2
    data3 = [0, 46210, 56925, 67641, 78356, 89072, 99788, 110503, 121218, 131933, 142649, 153365, 164080, 174795, 185511, 196226, 206944, 217659, 228374, 239089, 249804, 260520, 271235, 281952, 292667, 303382,
             314097, 324812, 335527, 346244, 356960, 367675, 378390, 389105, 399820, 410536, 421252, 431969, 442684, 453399, 464115, 474830, 485546, 496261, 506977, 517692, 528408, 539123, 549838, 560553, 571268]
    hit3 = 1


class 技能21(被动技能):
    名称 = '冰霜之手'
    所在等级 = 95

    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能22(主动技能):
    名称 = "极冰猎魔斩"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [960, 7200]
    无色消耗 = 7
    data0 = [0, 172693, 190213, 207732, 225252, 242773, 260292, 277812, 295332, 312850, 330369, 347890, 365410, 382930, 400448, 417968, 435489, 453009, 470528, 488048, 505566, 523086, 540607, 558127, 575646,
             593166, 610684, 628204, 645724, 663244, 680764, 698283, 715804, 733323, 750843, 768363, 785882, 803400, 820920, 838441, 855961, 873481, 890999, 908520, 926040, 943559, 961079, 978598, 996117, 1013638, 1031158]
    hit0 = 1


class 技能23(主动技能):
    名称 = "永劫：纳斯特隆德"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4027, 8055]
    无色消耗 = 15
    data0 = [0, 5766, 7103, 8437, 9774, 11112, 12449, 13786, 15124, 16460, 17795, 19133, 20470, 21807, 23143, 24481, 25818, 27154, 28492, 29827, 31164, 32502, 33839, 35176, 36513, 37849,
             39186, 40524, 41860, 43196, 44533, 45871, 47208, 48544, 49881, 51218, 52554, 53892, 55229, 56566, 57901, 59239, 60576, 61914, 63251, 64586, 65923, 67261, 68597, 69934, 71271]
    hit0 = 1
    data1 = [0, 57652, 71020, 84389, 97758, 111125, 124494, 137863, 151233, 164602, 177971, 191338, 204707, 218076, 231444, 244813, 258182, 271549, 284918, 298287, 311655, 325025, 338395, 351762, 365131, 378500,
             391868, 405237, 418606, 431973, 445342, 458712, 472080, 485449, 498818, 512185, 525554, 538924, 552293, 565661, 579030, 592400, 605767, 619136, 632504, 645873, 659242, 672610, 685978, 699347, 712715]
    hit1 = 1
    data2 = [0, 40356, 49715, 59072, 68431, 77789, 87146, 96504, 105863, 115220, 124579, 133936, 143294, 152654, 162011, 171369, 180728, 190085, 199443, 208802, 218159, 227517, 236876, 246233, 255591, 264950,
             274307, 283665, 293025, 302382, 311741, 321098, 330456, 339814, 349171, 358530, 367889, 377246, 386604, 395962, 405319, 414679, 424038, 433395, 442753, 452111, 461468, 470828, 480185, 489543, 498901]
    hit2 = 1
    data3 = [0, 40356, 49715, 59072, 68431, 77789, 87146, 96504, 105863, 115220, 124579, 133936, 143294, 152654, 162011, 171369, 180728, 190085, 199443, 208802, 218159, 227517, 236876, 246233, 255591, 264950,
             274307, 283665, 293025, 302382, 311741, 321098, 330456, 339814, 349171, 358530, 367889, 377246, 386604, 395962, 405319, 414679, 424038, 433395, 442753, 452111, 461468, 470828, 480185, 489543, 498901]
    hit3 = 1
    data4 = [0, 86478, 106530, 126584, 146637, 166689, 186742, 206795, 226849, 246902, 266954, 287008, 307061, 327113, 347166, 367220, 387272, 407326, 427380, 447432, 467485, 487538, 507590, 527644, 547696, 567749,
             587802, 607856, 627909, 647962, 668014, 688068, 708121, 728173, 748226, 768278, 788333, 808386, 828438, 848492, 868545, 888597, 908650, 928704, 948756, 968809, 988863, 1008916, 1028969, 1049022, 1069074]
    hit4 = 1
    data5 = [0, 11529, 14204, 16877, 19552, 22225, 24898, 27573, 30248, 32919, 35594, 38267, 40941, 43615, 46288, 48963, 51635, 54309, 56984, 59656, 62331, 65003, 67678, 70352, 73025, 75700,
             78374, 81046, 83721, 86394, 89068, 91742, 94415, 97090, 99761, 102436, 105111, 107784, 110457, 113132, 115805, 118480, 121151, 123826, 126501, 129174, 131848, 134520, 137195, 139870, 142542]
    hit5 = 5
    data6 = [0, 19217, 23673, 28128, 32585, 37040, 41498, 45954, 50411, 54867, 59324, 63780, 68236, 72691, 77149, 81605, 86060, 90517, 94972, 99429, 103886, 108341, 112798, 117253, 121710, 126167, 130622,
             135078, 139536, 143991, 148447, 152903, 157359, 161817, 166272, 170728, 175184, 179641, 184097, 188553, 193009, 197464, 201922, 206378, 210833, 215290, 219746, 224203, 228659, 233114, 237571]
    hit6 = 6
    data7 = [0, 172955, 213062, 253169, 293274, 333381, 373486, 413591, 453699, 493804, 533910, 574015, 614121, 654228, 694334, 734439, 774546, 814652, 854758, 894864, 934970, 975075, 1015182, 1055288, 1095394, 1135499, 1175605,
             1215714, 1255818, 1295923, 1336031, 1376135, 1416242, 1456348, 1496455, 1536559, 1576666, 1616772, 1656879, 1696983, 1737090, 1777197, 1817303, 1857407, 1897515, 1937620, 1977727, 2017833, 2057939, 2098044, 2138150]
    hit7 = 1


class 技能24(被动技能):
    名称 = '冰舞乱击'
    所在等级 = 45

    等级上限 = 1
    学习间隔 = 1
    等级精通 = 1

    关联技能 = ['极冰绽放']

    def 加成倍率(self, 武器类型):
        return 1.0


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'glacial_master'
        self.名称 = '知源·冰结师'
        self.角色 = '魔法师(男)'

        self.职业 = '冰结师'
        self.武器选项 = ['魔杖', '法杖']
        self.输出类型选项 = ['魔法百分比']
        self.防具精通属性 = ['智力']
        self.类型 = '魔法百分比'
        self.武器类型 = '魔杖'
        self.防具类型 = '皮甲'

        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.80

        super().__init__(equVersion)

    def 职业特殊计算(self):
        if self.get_skill_by_name('水晶剑').等级 != 0:
            self.get_skill_by_name('冰魄剑').技能形态改变()
        冰之技艺 = self.get_skill_by_name('冰之技艺')
        temp = [0] * len(冰之技艺.冰枪关联技能)
        for i in range(len(temp)-1):
            temp[i] = 冰之技艺.冰枪关联技能[i]+','
        temp[len(temp)-1] = 冰之技艺.冰枪关联技能[len(temp)-1]
        self.skills_passive['冰之技艺']['info'] = [{
            "type": "倍率",
            "info": [round((冰之技艺.冰枪加成倍率(self.武器类型) - 1) * 100, 0), "".join(temp), '无']
        },
        ]

    def set_skill_info(self, info, rune_except=[], clothes_pants=[]):
        super().set_skill_info(info, clothes_pants=['远古记忆'])

    def 技能倍率加成(self, min: int, max: int, x: float, exc=[], type="all",excName=[]) -> None:
        for i in self.技能栏:
            if i.所在等级 >= min and i.所在等级 <= max and i.所在等级 not in exc and i.名称 not in excName:
                if i.是否有伤害 == 1:
                    if type == "all" or (type == "active" and i.是否主动 == 1):
                        if i.名称 in self.get_skill_by_name('冰之技艺').冰枪关联技能:
                            i.不加成冰枪技能倍率 *= (1 + x * self.技能伤害增加增幅)
                        else:
                            i.倍率 *= (1 + x * self.技能伤害增加增幅)
                if i.名称 == "冰之技艺" and min == 75 and type == "all":
                    i.额外冰枪倍率 *= (1 + x * self.技能伤害增加增幅)

    def 伤害指数计算(self):
        iceneedle = self.get_skill_by_name('冰之技艺')
        for i in self.技能栏:
            if i.名称 in iceneedle.冰枪关联技能:
                i.倍率 *= i.不加成冰枪技能倍率 *( 1 + (iceneedle.冰枪加成倍率(self.武器类型) - 1)  * iceneedle.额外冰枪倍率)
        super().伤害指数计算()
